
package com.hlkj.pay.service.payment;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.framework.common.pojo.PageResult;
import com.hlkj.pay.dto.payment.MerchantPaymentPageDto;
import com.hlkj.pay.dto.payment.MerchantPaymentStatisticsDto;
import com.hlkj.pay.dto.payment.MerchantPaymentStatisticsPageQueryDto;
import com.hlkj.pay.infrastructure.model.payment.MerchantPaymentStatisticsDO;

import java.util.List;
import java.util.Set;

/**
 * @author HlpayTeam
 * @date 2024/11/20 13:44
 */
public interface IMerchantPaymentStatisticsService {

    /**
     * 
     * @param merchantPaymentPageQueryDto
     * @return
     */
    PageResult<MerchantPaymentPageDto> queryPage(MerchantPaymentStatisticsPageQueryDto merchantPaymentPageQueryDto);

    /**
     *
     * @param merchantPaymentReq
     * @return
     */
    PageResult<MerchantPaymentStatisticsDto> queryDetailPage(MerchantPaymentStatisticsPageQueryDto merchantPaymentReq);

    List<MerchantPaymentStatisticsDO> queryList(Integer type, String relationId, long time);

    List<MerchantPaymentStatisticsDO> queryList(String sn, Integer type, String relationId, Set<Long> timeKeys);

    /**
     *
     * @param merchantPaymentDetailDO
     */
    void addPaymentDetail(MerchantPaymentStatisticsDO merchantPaymentDetailDO);

    /**
     *
     * @param merchantPaymentDtos
     */
    void addPaymentList(List<MerchantPaymentStatisticsDO> merchantPaymentDtos);

    /**
     *
     * @param startQueryTime
     */
    void deleteByTime(long time, String sn, String remark);

    /**
     *
     * @param merchantPaymentDetailDO
     */
    void updatePaymentDetail(MerchantPaymentStatisticsDO merchantPaymentDetailDO);

    MerchantPaymentStatisticsDO queryOne(String sn, Integer type, String relationId, Long time);

}
